.\" Copyright (C) 2023 Alejandro Colomar <alx@kernel.org>
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.TH roundup 3 2024-05-02 "Linux man-pages 6.9.1"
.SH NAME
roundup \- round up in steps
.SH LIBRARY
Standard C library
.RI ( libc )
.SH SYNOPSIS
.nf
.B #include <sys/param.h>
.P
.BI roundup( x ", " step );
.fi
.SH DESCRIPTION
This macro rounds
.I x
to the nearest multiple of
.I step
that is not less than
.IR x .
.P
It is typically used for
rounding up a pointer to align it or
increasing a buffer to be allocated.
.P
This API is not designed to be generic,
and doesn't work in some cases
that are not important for the typical use cases described above.
See CAVEATS.
.SH RETURN VALUE
This macro returns the rounded value.
.SH STANDARDS
None.
.SH CAVEATS
The arguments may be evaluated more than once.
.P
.I x
should be nonnegative,
and
.I step
should be positive.
.P
If
.I x + step
would overflow or wrap around,
the behavior is undefined.
.SH SEE ALSO
.BR ceil (3),
.BR floor (3),
.BR lrint (3),
.BR rint (3),
.BR lround (3),
.BR round (3)
